Ephemeral geofence campaign system

ABSTRACT

Systems and methods for modifying campaign dependent geofences by creating marketing campaigns and linking the marketing campaign to a specific geofence. Each campaign-linked geofence may be capable of delivering the campaign messages to geofence participants during the duration of a marketing campaign and the geofence system may subsequently deactivate the geofence automatically after the marketing campaign has concluded. The systems and methods may map a geofence with a defined boundary to specified location on the map coinciding with the marketing campaign. As the tracked computer devices impinges on the borders of the market campaign&#39;s geofence, select messages may be received by the tracked computer devices, corresponding specifically to the events, promotions and advertisements of the campaign events during the time frame the events are active.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application claiming priority to Ser.No. 15/337,699 filed Oct. 28, 2016, now U.S. Pat. No. 10,417,663, issuedSep. 17, 2019, the contents of which are hereby incorporated byreference.

TECHNICAL FIELD

The present disclosure relates generally to systems, methods and toolsfor creating, displaying and utilizing geofences.

BACKGROUND

As portable devices, such as mobile communication systems, smart phones,tablet computers, laptops and navigation devices, become more advancedand powerful, these portable devices increasingly provide locationalguidance to users in real time. More recently, portable devices haveintroduced a concept known as geo-fencing. A geofence is a virtualperimeter around a real-world location. Portable devices that implementgeo-fencing functionalities may alert the user when the portable devicehas entered or exited an established geofence.

A geofence's perimeter may be virtually established around a point ofinterest such as an address, a store, or a home. Programs thatincorporate geo-fencing allow an administrator of a geofence to set uptriggers so when a device enters (or exits) the boundaries of thegeofence (defined by the administrator), a text message or email alertis sent. Many geo-fencing applications incorporate Google® Earth,allowing administrators to define boundaries on top of a satellite viewof a specific geographical area. Other applications may defineboundaries by longitude and latitude or through user-created andWeb-based maps.

SUMMARY

A first embodiment of the present disclosure provides a method formodifying a campaign dependent geofence comprising the steps of:creating, by a processor of a computer system, a marketing campaigncomprising one or more campaign messages; scheduling, by the processor,a start date and an end date to the marketing campaign; mapping, by theprocessor, a geofence having a specified boundary with a location andsize, and parameters corresponding to the marketing campaign includingthe start date, the end date and the one or more campaign messages; andautomatically deactivating, by the processor, the geofence as a functionof the end date of the marketing campaign.

A second embodiment of the present disclosure provides a computersystem, comprising: a central processing unit (CPU); a memory devicecoupled to the CPU; and a computer readable storage device coupled tothe processor, wherein the storage device contains program codeexecutable by the CPU via the memory device to implement a method formodifying a campaign dependent geofence comprising the steps of:creating, by the CPU, a marketing campaign comprising one or morecampaign messages; scheduling, by the CPU, a start date and an end dateto the marketing campaign; mapping, by the CPU, a geofence having aspecified location and size, and parameters corresponding to themarketing campaign including the start date, the end date and the one ormore campaign messages; and automatically deactivating, by the CPU, thegeofence as a function of the end date.

A third embodiment of the present disclosure provides a computer programproduct comprising: one or more computer readable hardware storagedevices having computer readable program code stored therein, saidprogram code containing instructions executable by the one or morecentral processing units (CPU) to implement a method for modifying acampaign dependent geofence comprising the steps of: creating, by theCPU, a marketing campaign comprising one or more campaign messages;scheduling, by the CPU, a start date and an end date to the marketingcampaign; mapping, by the CPU, a geofence having a specified locationand size, and parameters corresponding to the marketing campaignincluding the start date, the end date and the one or more campaignmessages; and automatically deactivating, by the CPU, the geofence as afunction of the end date.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a schematic view of embodiment of a system for modifyinga campaign dependent geofence consistent with the embodiments of thepresent disclosure.

FIG. 2 depicts a flow chart describing the system for modifying acampaign dependent geofence.

FIG. 3 illustrates an embodiment of geo-fencing module displaying amapping interface.

FIG. 4 illustrates an embodiment of the mapping interface of FIG. 3having an embodiment of an active geofence tied to a marketing campaignmapped thereon.

FIG. 5 illustrates an embodiment of the mapping interface of FIG. 3 anda tracked device entering, exiting or dwelling within an embodiment of ageofence.

FIG. 6 illustrates an embodiment of the mapping interface of FIG. 3 anda tracked device entering, exiting or dwelling within an alternativeembodiment of a geofence.

FIG. 7 illustrates an embodiment of the mapping interface of FIG. 3entering, exiting or dwelling within a geofence after an end date of amarketing campaign.

FIG. 8 illustrates an embodiment of a method for modifying a campaigndependent geofence.

FIG. 9 depicts a block diagram of an embodiment of a generic computersystem capable of implementing methods for modifying a campaigndependent geofence consistent with the embodiments described in thisapplication.

DETAILED DESCRIPTION

Overview

Embodiments of the present disclosure recognize that currently availablegeofence systems displaying messages to users, potential clients andcomputer systems are neither self-creating nor self-terminating. Whencurrently available geofences are created, the virtual barrier maypersist perpetually and display a pre-programmed message. Often users oradministrators of each geofence may forget to remove or deactivate thegeofence after the displayed message is no longer relevant or an eventhas concluded. The presence of persistent geofences may pose a problemdue to the current geo-fencing device limitations. Mobile computingdevices operating on the Android operating system may be limited to 100active geofences. Likewise, mobile computing devices equipped with aniOS operating system may be limited to merely 20 active geofences.Irrelevant geofences remaining in the memory of the operating system mayinterfere with retrieving or mapping currently relevant geofences thatmay otherwise be unavailable or un-viewable.

Embodiments of the system for modifying campaign dependent geofencesimprove upon currently available geofence systems by creating marketingcampaigns and linking the marketing campaign to a specific geofence.Each campaign-linked geofence may be capable of delivering the campaignmessages to geofence participants during the duration of a marketingcampaign and the geofence system may subsequently deactivate thegeofence automatically after the marketing campaign has concluded.Embodiments of the computer systems managing the campaigns may definethe date a marketing campaign begins and the date in which the marketingcampaign ends. Simultaneously, the geofence linked to the marketingcampaign may be generated and actively display marketing campaignmessages during the defined marketing campaign duration. Embodiments ofthe campaign management systems may transmit campaign messages tocomputer devices entering, exiting or dwelling within the marketcampaign's geofence during the active time period.

In some embodiments, a campaign management system may map a geofencewith a defined boundary to specified location on the map. The campaignmanagement system may track one or more tracked computer devicesentering, exiting and dwelling within the geofence linked to themarketing campaign. Embodiments of the campaign management system maytrack the computer devices using Global Positioning Satellites (GPS),Wi-Fi, Bluetooth, cell tower triangulation or other location techniques.As the tracked computer devices impinges on the borders of the marketcampaign's geofence, select messages may be received by the trackedcomputer devices, corresponding specifically to the events, promotionsand advertisements of the marketing campaign.

Embodiments of the geofences may be visibly displayed on a mappinginterface of the tracked computer systems. The campaign managementsystems may load one or more geofences tied to the marketing campaigninto the memory devices of the tracked computer devices for a specifiedtime period of the marketing campaign. Subsequently, after the marketingcampaign has concluded, the tracked computer device may no longerreceive campaign messages or visibly observe the presence of aparticular geofence tied to the expired marketing campaign. The trackedcomputer device and/or the campaign management system may deactivate,remove and/or delete the expired geofences at the conclusion of themarketing campaigns or a specified time thereafter.

System for Modifying Campaign Geofences

Although certain embodiments are shown and described in detail, itshould be understood that various changes and modifications may be madewithout departing from the scope of the appended claims. The scope ofthe present disclosure will in no way be limited to the number ofconstituting components, the materials thereof, the shapes thereof, therelative arrangement thereof, etc., and are disclosed simply as anexample of embodiments of the present disclosure. A more completeunderstanding of the present embodiments and advantages thereof may beacquired by referring to the following description taken in conjunctionwith the accompanying drawings, in which like reference numbers indicatelike features.

As a preface to the detailed description, it should be noted that, asused in this specification and the appended claims, the singular forms“a”, “an” and “the” include plural referents, unless the context clearlydictates otherwise.

Referring to the drawings, FIG. 1 depicts a block diagram of anephemeral geofence campaign system 100 (hereinafter “geofence system100”) for modifying geofences linked or connected to a one or moremarketing campaigns. Embodiments of the geofence system 100 may includea plurality of one or more computer systems, including a campaignmanagement system 101, a tracked computer device 201 a, 201 b, 201 c . .. 201 n (referred collectively as “tracked device 201”) and a geofencemanagement system 301. The computer systems 101, 201, 301 may each be aspecialized computer system, having specialized configurations ofhardware, software or a combination thereof as depicted in FIGS. 1-7 ofthe present disclosure and in the embodiments described herein.Embodiments of the computer systems 101, 201, 301 may not only comprisethe elements of the systems and devices depicted in FIG. 1-7, but mayalso incorporate one or more elements of a generic computer system asshown in FIG. 9 and described in detail below. Elements of the genericcomputer system of FIG. 9 may be integrated into the specializedcomputer systems 101, 201, 301 of FIGS. 1-7.

Each of the computer systems 101, 201, 301 may each be connected andplaced in communication with one another over a computer network 120.Embodiments of the network 120 may be constructed using wired orwireless connections between each hardware component connected to thenetwork 120. As shown in the exemplary embodiments, each of the computersystems 101, 201, 301 may connect to the network 120 and communicateover the network using a network interface controller (NIC) 119, 219,319 or other network communication hardware. Embodiments of the NICs119, 219, 319 may implement specialized electronic circuitry allowingfor communication using a specific physical layer and a data link layerstandard such as Ethernet, Fibre channel, Wi-Fi or Token Ring. The NIC119, 219, 319 may further allow for a full network protocol stack,enabling communication over network 120 to the group of computer systemsor other computing hardware devices linked together throughcommunication channels. The network 120 may facilitate communication andresource sharing among the computer systems 101, 201, 301 and additionalhardware devices connected to the network 120, for example a networkrepository 239. Examples of network 120 may include a local area network(LAN), home area network (HAN), wide area network (WAN), back bonenetworks (BBN), peer to peer networks (P2P), campus networks, enterprisenetworks, the Internet, cloud computing networks and any other networkknown by a person skilled in the art.

In some embodiments of the geofence system 100, the geofence system 100may include a campaign management system 101. The campaign managementsystem 101 may perform the functions, tasks and services of system 100directed toward creating a marketing campaign, campaign messages andmessaging events associated with the marketing campaign. The campaignmanagement system 101 may provide configuration information to thegeofence management system 301 during the geofence setup, link thegeofence to the marketing campaign, track the status of the marketingcampaign and the success of the campaign messages being delivered totracked devices 201 encountering the marketing campaign's geofence.

Embodiments of the campaign management system 101 may include a geofencemodule 103. The term “module” may refer to a hardware based module,software based module or a module may be a combination of hardware andsoftware resources. A module (whether hardware, software, or acombination thereof) may be designed to implement or execute one or moreparticular functions, tasks or routines of the systems. Embodiments ofhardware based modules may include self-contained components such aschipsets, specialized circuitry and one or more memory devices. Asoftware-based module may be part of a program code or linked to programcode containing specific programmed instructions loaded in the memorydevice 115, 215, 315 of the specialized computer systems 101, 201, 301of the geofence system 100. Embodiments of the geofence module 103,whether hardware, software or a combination thereof, may perform thefunctions and tasks associated with the creating the marketing campaign,linking the campaign to a geofence, mapping the geofence onto a userinterface viewable by a tracking device 201, tracking the interactionsbetween the tracking devices 201 and the geofence as well as reportingthe interactions tracked by the campaign management system 101.Embodiments of the geofence module 103 of the campaign management system101 may include sub-modules designated with performing the individualtasks, routines and services of the geofence module 103. Variousembodiments of the geofence module 103 may comprise a campaign module125, mapping module 107, tracking module 127 and a reporting module 109.

Embodiments of the campaign module 125 may perform the task of creating,organizing, storing and transmitting marketing campaign data, includingthe creation, storage and transmission of campaign messages integratedinto the geofences. In some embodiments, the campaign module 125 maystore the created campaign messages in a campaign management database111. The campaign module 125 may query the campaign management database111 in response to campaign participant activity, requests made by ageofence management system or a tracked device 201 to receive campaignmessages as a function of the tracked device's 201 interaction with acampaign event being mapped onto a geofence.

In some embodiments, the campaign module 125 may set one or moreparameters of the marketing campaign being stored and managed by thecampaign management system 101 and the campaign management database.During the creation of a marketing campaign, a user may provide campaigninput data 206 into the campaign management system 101 to set theconfiguration of the marketing campaign. For example, the campaign inputdata 206 entered into the campaign management system 101 may direct thecampaign module 125 to configure a campaign with a specified start date,start time, end date and end time for the marketing campaign. Thecampaign input data 206 may further define parameters for the campaignmodule 125 to create a marketing campaign. The campaign input data 206may include information such as the organizer of the campaign, forexample the individuals or companies running a promotion, the locationsor regions that may be included or excluded from the marketing campaign.Additionally, the campaign input data 206 may further direct thecampaign module's 125 creation or selection of the specific campaignmessages, promotions, advertisements or other intellectual propertyassociated with the marketing campaign that may be delivered toparticipants of the campaign. Embodiments of the campaign module 125 mayload the marketing campaign, the campaign's parameters and the campaignmessages into memory device 115 or the campaign management database 111.The campaign module 125 may modify, transmit or retrieve the marketingcampaign data configured and stored by the campaign management system101 at a later point in time or when requested to do so by a separatecomputing system such as the geofence management system 301 or trackeddevice 201.

In some embodiments of the campaign management system 101, the geofencemodule 103 may further include a mapping module 107. The mapping module107 may perform the function of configuring the campaign dependentgeofences, communicating with the geofence management system 301 duringthe geofence creation process. During the configuration of the geofence,an administrator of the geofence may utilize the campaign managementsystem 101 to set one or more parameters of the geofence, and link thegeofence to marketing campaign of the campaign module 125. For example,the mapping module 107 may receive geofence configuration data 306 froman administrator of the campaign management system defining theproperties of the geofence. The geofence configuration data may includedata defining the geofence's identifying name, location, and size orboundary limits (i.e. longitude, latitude and radius). In someembodiments, the geofence configuration data 306 entered into themapping module 107 may include input data defining a start date and timeas well as the end date and time (also referred to as the expirationdate) of the geofence.

In the exemplary embodiment of the geofence system 100, the mappingmodule 107 may retrieve creations and expiration dates for the geofencefrom the campaign module 125. The mapping module 107 may execute acommand to load the marketing campaign's parameters created by thecampaign module 125 into the memory device 115 of the campaignmanagement system 101 during the geofence configuration process. Inalternative embodiments, mapping module 107 may import or apply theparameters of the marketing campaign stored by the campaign managementdatabase 111 into the mapping module. For example, the mapping module107 may be programmed to retrieve and load a marketing campaign by aname previously designated by the campaign module 125.

Geofence configuration data 306 inputted into the mapping module 107 mayfurther configure one or more acceptable geofence transitions. Thegeofence transitions may trigger the transmission of a campaign messageto a tracked device 201 interacting with the geofence once the geofencehas been established and activated. Examples of transitions may includeentering the geofence, exiting the geofence or dwelling within ageofence. The mapping module 107 may configure s response provided bythe geofence upon the occurrence of one or more of the programmedtransitions. For example, in some embodiments, when a tracked device 201breaches the boundary of the geofence and enters the geofence area, acampaign message may be transmitted to the tracked device 201,describing nearby events, activities and promotions. Similarly, the exittransition may be programmed to allow for the campaign management system101 to deliver a campaign message when a tracked device 201 exits thegeofence. For instance, the campaign message may thank the user forparticipating in the marketing campaign and/or inform a campaignparticipant about upcoming promotions to look out for in the geofencespace that the participant had just exited. Likewise, in someembodiments, where the transition selected is a “dwell” action, themapping module 107 may configure the geofence to transmit a campaignmessage to a tracked device 201 once the tracked device has maintained alocation within the geofence for a pre-set or pre-programmed amount oftime.

Embodiments of the mapping module 107 may transmit the configurationsettings of the geofence from the campaign management system 101 to thegeofence management system 301. The transmission may occur over network120. For example, the mapping module 107 may transmit an API call fromthe campaign management system 101 to the geofence management system301, requesting the geofence management system 301 create a geofencewith the properties prescribed by the mapping module 107. Once thegeofence has been created by the geofence management system, the mappingmodule 107 may receive the data of the created geofence and load thecreated geofence into memory device 115 of the campaign managementsystem 101. The mapping module 107 may further plot each of themarketing campaign's geofences onto a mapping interface 302 depictingthe location of each created geofence as shown in the examples of FIGS.3-6 of the current application.

Embodiments of the geofence module 103 may further comprise a trackingmodule 127. The tracking module 127 may perform the tasks of collectingdata and statistics about the geofence and the associated marketingcampaign. The tracking module 127 may identify tracked devices 201entering, exiting or dwelling within the geofences and record themovements of the devices 201 by collecting location data from each ofthe tracked devices 201 or receiving the collected location data from ageofence management system 301. The tracking module 127 may beresponsible for gauging the success or failure of a marketing campaignas a function of the tracked devices 201 interacting with the geofenceand participating with the campaign messages being delivered to thetracked devices 201.

Embodiments of the tracking module 127 may further collect and storeidentifying information about each of the users and the user's trackeddevices 201. Identifying information data 210 may include a user's name,age, email address, home address, social media usernames and locationinformation provided to the tracked device 201. The tracking module 127and/or tracking module 327 may collect statistical information that maydraw conclusions of the success or failure of the marketing campaign andgeofence. For example, the tracking module 127 may analyze the number oftracked devices 201 triggering a campaign message to be delivered, theviewing time of the campaign messages, whether or not the campaignmessages were accepted or deleted, whether or not user's of the trackingdevice 201 participated in the content of the campaign messages beingdelivered as well as identifying demographics such as the age of theusers receiving the campaign messages.

Embodiments of the tracking module 127 may analyze the data collectedfrom the tracked devices 201 and draw conclusions about the efficiencyof the campaign, the target demographics and potential improvements tothe campaign or geofence. The tracking module 127 may compare thegeofence and marketing campaign data with previous campaigns andgeofences to identify the success of the campaign relative to previouscampaigns that may have previously expired. The tracking module 127 mayreport the statistics and conclusions to the reporting module 109.

Embodiments of the reporting module 109 may generate one or more reportsas a function of the statistics and conclusions collected and drawn bythe tracking module 127. The reporting module 109 may present anddisplay reports of the marketing campaign and campaign linked geofenceto an administrator of the campaign management system 101. In someembodiments, the statistics, conclusions and data collected by thetracking module 107 may be archived in the campaign management database111 or a network accessible repository 239 for further analysis orcomparison with future marketing campaigns and geofences. In someembodiments, the reporting module 109 may report the presence of futurecampaign dependent geofences that may not have been activated yet, butare scheduled to be activated at the start of a corresponding upcomingmarketing campaign. Embodiments of the reporting module may generate anddisplay a report to the campaign management system 101 in someembodiments that provides a detailed listing of the active and pendingmarketing campaigns as well as the corresponding active and pendinggeofences scheduled to activate at the start of an upcoming marketingcampaign start date.

As shown in FIG. 1, embodiments of the geofence system 100 may include ageofence management system 301, briefly described above. The geofencemanagement system 301 may perform the tasks and functions of creating,deleting, mapping, tracking and generating geofences affiliated with amarketing campaign. The geofence management system 301 may perform tasksof the geofence system 100 in a manner designated by the campaignmanagement system 101 and further perform the task of serving thecreated geofences to a plurality of computer devices being tracked bythe campaign management system 101 and geofence management system (i.e.tracked devices 201). The geofence management system 301 may include ageofence module 303 to perform the designated tasks and functions ageofence management system 301.

Similar to the geofence module 103 of the campaign management system101, the geofence module 303 of the geofence management system 301 maybe a hardware module containing specialized chipsets and circuitryand/or or a software module loaded in the memory device 315 of thegeofence management system 301. Embodiments of the geofence module 303may include a creation module 333, deletion module 335, mapping module307, tracking module 327 and a reporting module 309.

Embodiments of the creation module 333 may perform the task ofgenerating the geofence corresponding to the marketing campaign data 206and the geofence configuration data 306 inputted into the campaignmapping module 107. The creation module 333 may receive theconfiguration settings for the geofence from the mapping module 107and/or the campaign module 125 of the campaign management system 101.The request to build the geofence to the specification of the campaignmanagement system 101 may be received from the campaign managementsystem in the form of an API call. The API call may be loaded in thememory device 315 of the geofence management system 301. The creationmodule 333 may analyze configuration settings of the geofence requestedby the campaign management system, confirm the settings are feasible orerror free. If configuration settings for the geofence are infeasible orcontain errors, the geofence creation module 333 may deny the requestand further request a correction to the errors. Otherwise, if theconfiguration settings are feasible and error free, the creation module333 may build the geofence according to the parameters, including therequested duration, expiration date, start time, start date, end time,end date, location, size, the applicable transitions and campaignmessages that may be delivered to devices meeting the transitionsettings. The creation module 333 may automatically activate each of thegeofences according to the start date/time. In some embodiments, theactivation of the geofence may not occur immediately upon creation.Instead, the activation may be delayed to meet the start date/time ofthe marketing campaign.

Embodiments of the creation module 333 may save and store the geofenceand the geofence parameters in a geofence management database 311 ornetwork accessible database, repository 239, data mart or other datastructure. Saving and storing the geofence and the geofenceconfiguration settings or parameters (including campaign messages) may,in some embodiments, allow for the geofence management module 301 torepeatedly create the same geofences periodically, as instructed by thecampaign management system 101. For example, a particular marketingcampaign may occur every week, every month, every year, etc. Thecampaign management system 101 may in some embodiments, send an API callto execute a geofence by a particular geofence name or marketingcampaign name. In response, the creation module 333 may query or lookupthe geofence management database 311 and load the previously storedconfiguration settings and parameters into memory device 315 and updatethe database entry to include a newly scheduled stating date, durationand expiration date.

Embodiments of the geofence module 303 may further comprise a mappingmodule 307. The mapping module 307 may perform the tasks of loading oneor more active geofences to a mapping interface 302, accessible by oneor more tracked devices 201. The mapping module 307 may serve thegeofences (created by the creation module 333) to one or more trackeddevices 201 accessing the geofence over network 120. Tracked devices 201connecting to the geofence management system 301 may retrieve, store,download or actively stream the geofence data over network 120.Embodiments of the tracking module 327 may collect location data 106,identifying user information, statistics of the geofence, the numbertransitions activated by tracked devices 201, the number of campaignmessages served to the tracked devices 201 and transmit the collecteddata from the geofence management system 301 to the tracking module 127of the campaign management system. The tracking module 327 may identifyconditions giving rise to the transmission of the associated campaignmessages, including the identification of tracked devices meeting thetransitions requirements (enter, exit, dwell) configured by the campaignmanagement system 101. As a tracked device 201 receiving the geofenceimpinge on a virtual boundary of the geofence mapped by the mappingmodule 307, or dwells within the virtual boundaries of the geofence, thetracking module 327 may identify the triggering transition and transmitthe associated campaign message resulting from transition's occurrence.

Embodiments of the mapping module 307 may transmit push notifications tothe tracked devices 201, including push notifications, emails, textmessages or messaging services containing campaign messages duringactive periods of a marketing campaign for a particular geofence. Thepush notifications transmitted from the geofence mapping module 307 tothe device's mapping module 207 may be triggered as a function of thetracking module 327 identifying a tracked device 201 transitioning intoan active geofence. In some embodiments, the mapping module 307 may beloaded with one or more secondary messages. A secondary message may bepushed to a tracked device 201 that has entered, exited or dwelledwithin a campaign's geofence prior to the campaign activation date orafter the campaign has expired. Secondary message being pushed to thetracked device may inform the user of the tracked device 201 to comeback during the dates of the campaign or to stay tuned for futurecampaigns that may occur within the particular geofence.

In some embodiments of the geofence management system 301, the geofencemodule 303 may include a reporting module 309. The reporting module 309of the geofence management system 301 may perform the function oftransmitting statistical information about the geofence and informationcollected by the geofence management system 301 during the activation ofthe geofence. The reporting module 309 may transmit the data to one ormore computer systems 101, 201 over network 120. For example, thereporting module 309 may be responsible for transmitting data collectedby the tracking module 327 to the campaign tracking module 127. Thereporting module 309 may transmit statistics and data that may assistthe campaign tracking module 127 with identifying the success or failureof the marketing campaign, the number of interactions users have withthe geofence, demographic information about users interacting with thegeofence, the attachment rate or rate at which campaign messages werepositively or negatively received and/or acted upon by users of atracked device 201. The reporting module 309 may further identifywhether the status if the geofence and whether or not the geofence iscurrently active, deactivated or deleted by the deletion module 335.Embodiments of geofences system 100 may select a deletion date fordeleting the geofence that may occur at the end date of the marketingcampaign or in alternative embodiments, the deletion date may occurautomatically at a pre-set time after the marketing campaign hasconcluded.

In some embodiments of the geofence system 100, the system 100 mayinclude one or more tracked devices 201 connected to the campaignmanagement system 101 and geofence management system 301 via computernetwork 120. A tracked device 201 may be any type of mobile computingdevice that may move or change locations. Some examples of a trackeddevice 201 may include, but are not limited to mobile communicationdevices, smart phones, cell phones, laptops, tablet computers, smartwatches and glasses, persona data assistants (PDA) and wireless orinternet enabled media devices. The tracked devices 201 may be any typeof touch point device capable of acting as a point of interaction withthe geofence created by the geofence management system 301. The trackeddevices 201 are not limited only to the number of devices depicted inthe figures of the current application. Any number of tracked devices201 may part of the geofence system 100 and connected to network 120. Asshown in FIG. 1, the number of tracked devices is open ended. Thetracked devices 201 include tracked devices 201 a, 201 b, 201 c . . .201 n, wherein the ellipses represent a infinite number of trackeddevices that may be present between 201 c and the nth tracking deviceidentified as the last device in the set of a plurality of trackeddevices 201.

Embodiments of the tracked devices 201 may include a geofence module203. The geofence module 203 may provide access and interaction with themarketing campaign associated geofence created by the geofencemanagement system 301 and the campaign management system 101. Thegeofence module 203 may be specialized hardware physically connectedwithin the tracked device or the geofence module 203 may be softwareprogram or program instructions loaded in the memory device 215 of thetracked device 201. In alternative embodiments, the geofence module 203providing access to the geofence and marketing campaign messages may bevirtualized hardware that may be physically located via network 120 or aremotely accessible program executing program instructions fortransmitting, receiving and displaying the data of the geofences. Forexample, the tracked device 201 may be accessing a virtualized geofencemodule through program or application services maintained by a cloudcomputing network.

Embodiments of the geofence module 203 may include a location module205. The location module 203 may be comprised of hardware and/orsoftware capable of utilizing a positioning system to pinpoint thecurrent location of the tracking device 201 and/or previous positions ofthe tracked device 201 that may be stored in the memory device 215 ordatabase 211. For example the location module may utilize thepositioning capabilities of the global positioning system (GPS), Wi-Fi,Bluetooth of Bluetooth low energy beacons, cell tower triangulation or acombination of positional systems. In some embodiments, the locationmodule 205 may include a transmitter, receiver and/or transceiver forreceiving location data from a positioning system or broadcasting thelocation data to the campaign management system 101 and/or the geofencemanagement system 301. Embodiments of the location module 205 may save,store and update one or more sets of location information to a memorydevice onboard the location module or, the location module 205 may storethe location information to memory device 215 or database. The locationmodule 205 may communicate the stored location data 106 to the geofencemanagement system 301 and campaign management system 101 in order toallow each system to track the location of the tracked device 201,compare the location information with the established geofences of themarketing campaign, collect relevant data about the tracked device 201or the device's user, entering, exiting or dwelling within theestablished geofence and push campaign messages to the devices 201meeting the transitioning conditions of the geofence.

The tracked device 201 may further comprise a mapping module 207. Themapping module 207 may perform the function of pinpointing the currentlocation of the tracked device 201, monitor the position of the trackeddevice 201 in real time as the tracked device changes location anddisplay the location of the tracked device 201 in relation to theposition of each campaign geofence. Embodiments of the mapping module207 may receive the data of the geofence from the geofence module 303 ofthe geofence management system 301. In particular, the mapping module207 may download or retrieve geofence data from the geofence mappingmodule 307. The device's mapping module 207 may plot each of thegeofences as a function of the geofence data onto a mapping interface302 which may be displayed by a display device 214 of the tracked device201. As shown by the Example in FIG. 3, the mapping module 207 maydisplay the device location 304 onto a map interface 302 in real time,as a function of the location data 106 collected by the location module205. The map interface 302 may depict the location surrounding thetracked device's current device location 304. As the tracked device 201updates the location information of the location module 205, the devicelocation 304 may be mapped onto the mapping interface 302 accordingly.

As shown in FIG. 4, the mapping module 207 may display geofence events405 a, 405 b and a surrounding geofence boundary 403 a, 403 b onto themapping interface 302. The locations of each geofence event 405 a, 405 band the size of the geofence boundaries 403 a, 403 b may be defined bythe configuration settings prescribed by the mapping module 107 of thecampaign management system 101 and subsequently created by the geofencemanagement system 301. Each geofence event 403 a, 403 b may be tied to aregion, store, public location, live event occurring in real time, orany other type of event. The timing of the geofence event 403 a, 403 band the associated marketing campaign may be predetermined and/or timedto a specific start date/times and end date/times of a particular eventsreal time length. For example, geofence events 403 a, 403 b may be alive event occurring in real time wherein the start date/time or enddate/time mirror length or duration of the geofence. Alternatively, insome embodiments, the geofence event 403 a, 403 b may linked to aparticular store and only be active during the store's real world hours.Thus, the geofence may deactivate while the store is closed andreactivate during the store's business hours. The mapping module 207 maydownload, retrieve or stream the geofence data over network 120 and savethe geofence data into memory device 215. The mapping module 207 mayperiodically download updates to the geofence data which may be providedby either the geofence management system 301 or the campaign managementsystem 101.

Embodiments of the mapping module 207 may further download and retrievecampaign messages 510, 610 from the campaign management system and/orthe geofence management system 301 as a function of the locationinformation in comparison with the geofence boundary 403 a, 403 b. Asshown in FIGS. 4-7, the boundaries 403 a, 403 b of each geofence can beany shape and size. For example, the boundary may be circular, square,rectangular, triangular, hexangular, etc. and even irregular shaped asdepicted by geofence boundary 403 b. Different campaign messages may bedisplayed as a function of the tracked device's 201 position, relativeto the geofence boundary 403 a, 403 b and the geofence event 405 a, 405b. As depicted by the embodiment of FIG. 5, the device location 304 ofthe tracked device 201 has changed location. As shown, the devicelocation 304 has repositioned as a function of the location informationto be inside the geofence boundary 403 a. In response to the penetrationof the device location 304 into the geofence boundary 403 a, thegeofence management system 301 may transmit a campaign message 510corresponding to the geofence event 405 a, while the geofence event 405a is still operating under an active marketing campaign.

Conversely, FIG. 6 depicts an embodiment of a tracked device 201 havinga device location 304 positioned within the geofence boundary 403 b ofthe geofence event 405 b. As it can be observed, the marketing campaignsfor geofence events 405 a and 405 b differ from one another, thus, thecampaign messages 510, 610 delivered when the geofence boundary 403 a,403 b is penetrated differs accordingly. As shown in FIG. 6, upon thechange in position of the device location 304 to a location within thegeofence boundary 403 b of geofence event 405 b, the geofence managementsystem 301 transmits a campaign message 610 associated with themarketing campaign of geofence event 405 b. In an embodiment of thegeofence system 100, wherein the geofence events 405 a, 405 b arederived from different marketing campaigns, the campaign messages 510,610 may differ as depicted by the figures. However, in some embodiments,the marketing campaigns may be the same campaign and thus penetratingthe geofence boundaries 403 a, 403 b may result in the receipt of thesame message. Embodiments of the reporting module 209 may receive thecampaign messages provided by the geofence management system 301 and/orcampaign management system 201. The reporting module 209 may display theappropriate campaign message on the display device 214 of the trackeddevice 201 triggering the geofences programmed transition.

Embodiments of the mapping module 207 may continue to map and track thedevice location 304, even after the deactivation of one or moregeofences. As shown in FIG. 7, one or more geofence events 405 a, 405 bmay automatically deactivate as a function of the parameters prescribedduring geofence creation by the campaign management system. Forinstance, once a marketing campaign associated with a geofence expires,the geofence may automatically deactivate. The mapping module 207 of themapping interface 302 may manually or automatically update as one ormore campaign dependent geofences expire. As shown in the Example ofFIG. 7, the geofence event 405 b has expired. Even though the devicelocation 304 is within the original geofence boundary 403 b, thegeofence no longer displays the affiliated campaign message 610 becausethe marketing campaign has ended.

In some embodiments, the campaign dependent geofence may be merelyinactive once the marketing campaign has expired. In alternativeembodiments, the deletion module 335 of the geofence management systemmay schedule the campaign dependent geofence for deletion. In certainembodiments, the geofence may not be deleted, but rather scheduled forreactivation at a later time period prescribed by the campaignmanagement system 101. The campaign may be a rolling campaign thatperiodically activates and deactivates for a set period of time beforereactivating automatically. In some embodiments, the tracking module 327of the geofence management system may continue to collect and reportinformational device data 210 (or metadata) about the tracked devices201 that may continue to enter, dwell or exit the boundary of thedeactivated geofence. The collected informational device data 210 may bestored by the campaign management system 101 and used to determine thepopularity of a geofence or potential geofence region. The campaignmodule 125 may determine one or more particular regions on the map to beoptimal locations or demographics when it comes time to activate a newgeofence. Likewise, the campaign module may also determine that aselected region for a geofence does not meet a particular standard. Forexample the previously selected location may not attract enough trackeddevices 201 or attracts users of a demographic not in tune with themarketing campaign's demographics.

In some embodiments, the mapping module 207 may retrieve and display asecondary message to tracked devices 201 that enter a deactivatedgeofence. The secondary messages may provide messages about previouscampaigns, upcoming campaigns to be aware of in the current deactivatedgeofence or potential marketing opportunities for business to create ageofence within the deactivated geofence.

Method for Modifying Campaign Dependent Geofence

The drawing of FIG. 8 represents an embodiment of a method or algorithmthat may be implemented for modifying campaign dependent geofences inaccordance with the geofence systems 100 described in FIGS. 1-7 usingone or more computers as defined generically in FIG. 9 below, and morespecifically by the embodiments of specialized computer systems 101,201, 301 presented in FIGS. 1-7. A person skilled in the art shouldrecognize that the steps of the algorithm described in FIG. 8 may beperformed in a different order than presented by FIG. 8 and thealgorithm may not require all of the steps described herein to beperformed. Rather, some embodiments may create and terminate campaigndependent geofences using only one or more of the steps discussed below.

The embodiment of the method 800 for modifying campaign dependentgeofences may begin at step 801. In step 801, the campaign managementsystem 101 may create a marketing campaign comprising one or morecampaign messages. The campaign messages may be created by the campaignmodule 125 and stored in the campaign management database 111 asdepicted in the flow chart of FIG. 2. In some embodiments, the campaignmodule 125 may create a campaign name or other unique identifier toidentify the particular campaign being created The campaign name oridentifier may be selected by a user or administrator of the campaignmanagement system 101 and input via the campaign input data 206. In step803 the campaign module 125 may further receive campaign input data 206comprising one or more parameters of the marketing campaign. Thecampaign module 125 receiving the campaign input data 206, may furtherschedule the marketing campaign as a function of the campaign input data206, including the duration of the campaign (i.e. the starting date, andtime, ending date and time), the campaign repeatability cycle (if any)the regional locations affected by the campaign.

In step 805, the geofence system 100 may map the geofence having aspecified boundary, location and the same activated time frame(start/end times) as the marketing campaign created in steps 801 and803. The step of mapping the geofence in step 805 may begin by themapping module 107 of the campaign management system inputting one ormore parameters of the geofence being mapped. As shown by themembodiment of FIG. 2, the campaign mapping module 107, may receive theparameters as geofence configuration data 306 which may be inputted by auser or administrator of the campaign management system 101. Embodimentsof the mapping module 107 may input each of the parameters of thegeofence corresponding to the marketing campaign as prescribed by thegeofence configuration data 306. The parameters entered by the campaignmodule may include an activation time (start date/time, end date/time),cycling time and a region that matches the marketing campaign of steps801 and 803. The mapping module 107 may select one or more locations forthe geofence to be activated. The mapping module 107 may also continueby selecting the shape and size of the geofence in accordance with thecampaign location and the geofence configuration data 306. The campaignmapping module may link the campaign messages from step 801 to thegeofence configured by the mapping module 108 or retrieve and load thecampaign messages from the campaign module 103.

Once the mapping module 107 has completed the configuration settings ofthe geofence as a function of the campaign and input data 206, 306, themapping module may subsequently perform an API call to the geofencemanagement system 301. The API call may be made request the geofencemodule 303 of the geofence management system 301 to generate a geofencehaving each of the properties configured by the mapping module 107. Therequest for generating the campaign dependent geofence may be receivedby the geofence creation module 333. The geofence creation module 333may analyze the configured settings received from the campaign mappingmodule 107. In some embodiments, the creation module 333 may check foranomalies, inconsistencies and errors between the geofence configurationdata 306 and the campaign data 206 and if there are inconsistencies,anomalies or errors, the creation module may return an error to thecampaign management system 101 and allow for correction. Likewise, thecreation module 333 may generate a geofence having a time (frame)duration, expiration location, size, acceptable transitions and campaignmessages prescribed by the configuration data received from the campaignmapping module 107. As shown in FIG. 2, the geofence data may be storedby the creation module 333 in the geofence database 311.

The mapping step 805 may continue by transmitting the geofence generatedby the creation module 333 to the geofence management system's 301mapping module 307. The mapping module 307 may visually map thelocations of the created geofence and distribute the data depicting thegeofence mapped to a mapping interface to the campaign mapping module107 and/or tracked device's mapping module 207. Upon receiving thecampaign dependent geofence, the device's mapping module 207 may ploteach of the geofence's onto a mapping interface 302 displaying thedevice's location 304, each geofence event 405 a, 405 b and/or eachgeofence boundary 403 a, 403 b.

In step 807 of method 800, upon loading the geofence into the mappingmodule 207 of the tracked device 201 the system 100 may track each oftracked computer devices 201 location, identifying any tracked devices201 that may meet the programmed transition of entering, exiting ordwelling within a geofence boundary 403 a, 403 b. The tracking step maybe performed by geofence tracking module 327 and/or the device mappingmodule 207 receiving location data 106 of the tracked device 201collected by location module 205. Embodiments of the geofence system100, may compare the received location data 106 with the location ofeach of the mapped geofence boundaries. In step 809, the geofencetracking module 327 making the comparison between the location data andthe mapped geofence may determine whether or not the tracked computerdevice 201 has entered, exited or dwelled within a mapped geofenceboundary of the marketing campaign. If, in step 809, it is determinedthat the tracked computer device 201 has not performed a transitiondefined to trigger a campaign message from the geofence, the method 800may return to step 807 and continue to track the location of thecomputer devices 201 that have loaded the geofence of the marketingcampaign.

If, on the other hand, the geofence tracking module 327 identifies thatthe tracked computer device 201 has met one or more conditions fortrigger a transition, by entering exiting or dwelling within thegeofence as a function of the location data 106, in step 811, thetracking module 307 may collect device data 210 or metadata includingidentifying information about the tracked device 201 and the device'susers. The device data 210 collected by the geofence tracking module 327may be stored in the geofence database 311, network repository 239and/or transmitted to the campaign tracking module 127 via thegeofence's reporting module 309. The device data collected may providevaluable information to the campaign management system regarding thenumber of devices interacting with the geofence, the number of campaignmessages accepted or ignored, the demographics of the device user's andother statistical information that may gauge the success or failure ofthe marketing campaign. Identifying the success or failure of aparticular marketing campaign may include the steps of counting thenumber of tracked computer devices 201 entering, exiting or dwellingwithin the boundaries of the geofence while the geofence is activated.The geofence system 100 may identify the effectiveness of the marketingcampaign as a function of the number of computer devices entering,exiting or dwelling within the boundaries of the geofence, the number oftracked computer devices 201 receiving a campaign message pushed to thetracked computer device 201 and the number of tracked user devices whoreceived the pushed campaign messages arrive at the geofence eventlocation and/or take advantage of a promotion or advertisement that waspushed to the device 201.

As tracked devices 201 transition into and out of the geofence'sboundaries 403 a, 403 b in step 809, the geofence management system mayin step 813, identify whether or not the marketing campaign is currentlyactivated or deactivated as a function of the geofence's parameters. If,in step 813, it is determined by the geofence system 100 that themarketing campaign is not deactivated, the geofence mapping module 307may in step 814 transmit a campaign message linked to the geofence tomapping module 207 of the tracked device. The reporting module 209 ofthe tracked device 201 may display the campaign message transmitted onthe display device 214 as a function of the tracked device 201fulfilling the transitional requirements of entering, exiting ordwelling within the geofence's boundaries. The campaign message, oncetransmitted to the tracked device 201, may continue to track each thedevices 201 in accordance with step 807 of this described method 800.

If, in step 813, the marketing campaign has expired and thusdeactivated, the geofence mapping module 307 may additionally make adetermination whether or not the geofence has been deleted by thedeletion module 335 in step 815. As described above, at the expirationof a marketing campaign, a geofence may be temporarily deactivate thegeofence, scheduled for the geofence for deletion at a later time ordelete the geofence via the deletion module 335 of the geofencemanagement system 301. If, the geofence has been deleted, no furtheraction may be taken by the geofence system 100, until a new geofence hasbeen created or a previous geofence stored by a database, repository orother storage device is recreated.

In some embodiments however, the geofence system 100 may be deactivatedin step 813, but not deleted in step 815. An administrator of amarketing campaign may choose to deactivate a campaign dependentgeofence rather than delete the geofence in order to continue to collectdevice data 210, statistics and demographics of the geofenced area. Thecampaign management system 101 may analyze the collected data acquiredboth during and after a marketing campaign has completed in order assessthe viability of the geofence location.

In some embodiments, the geofence system 100 may in display secondarymessages that may not be part of the campaign messages of an activegeofence. In step 817, the geofence management system 301, via themapping module 307, may assess whether or not the deactivated geofenceincludes a secondary message that may be transmitted to a tracked device201 during a time period of deactivation. If there a secondary messagehas not been programmed to be transmitted to the tracked device 201, themethod 800 may return to step 807 as described above, track computerdevices 201 entering, exiting or dwelling within the deactivatedgeofence, continue to collect location data 106 and collect device data210 from tracked devices 201. However, if a secondary message in step817 has been programmed into the geofence during periods of activation,the secondary message may be transmitted from the geofence mappingmodule 307 to the mapping module 207 of the tracked device 207, whereinthe secondary message is displayed by the reporting module 209 ondisplay device 214. For instance, the secondary message may revealmissed promotional opportunities of the now expired marketing campaign,or encourage device users to come back at a future time frame to takeadvantage of an upcoming marketing campaign's geofence.

Computer System

Referring to the drawings, FIG. 9 illustrates a block diagram of acomputer system 900 that may be included in the systems of FIGS. 1-7 andfor implementing methods for modifying campaign dependent geofences asshown in the embodiment of FIG. 8 and in accordance with the embodimentsdescribed in the present disclosure. The computer system 900 maygenerally comprise a processor, otherwise referred to as a centralprocessing unit (CPU) 991, an input device 992 coupled to the processor991, an output device 993 coupled to the processor 991, and memorydevices 994 and 995 each coupled to the processor 991. The input device992, output device 993 and memory devices 994, 995 may each be coupledto the processor 991 via a bus. Processor 991 may perform computationsand control the functions of computer 900, including executinginstructions included in the computer code 997 for tools and programsfor modifying campaign dependent geofences, in the manner prescribed bythe embodiments of the disclosure using the systems of FIGS. 1-7,wherein the instructions of the computer code 997 may be executed byprocessor 991 via memory device 995. The computer code 997 may includesoftware or program instructions that may implement one or morealgorithms for implementing the methods for modifying campaign dependentgeofences, as described in detail above. The processor 991 executes thecomputer code 997. Processor 991 may include a single processing unit,or may be distributed across one or more processing units in one or morelocations (e.g., on a client and server).

The memory device 994 may include input data 996. The input data 996includes any inputs required by the computer code 997. The output device993 displays output from the computer code 997. Either or both memorydevices 994 and 995 may be used as a computer usable storage medium (orprogram storage device) having a computer readable program embodiedtherein and/or having other data stored therein, wherein the computerreadable program comprises the computer code 997. Generally, a computerprogram product (or, alternatively, an article of manufacture) of thecomputer system 900 may comprise said computer usable storage medium (orsaid program storage device).

Memory devices 994, 995 include any known computer readable storagemedium, including those described in detail below. In one embodiment,cache memory elements of memory devices 994, 995 may provide temporarystorage of at least some program code (e.g., computer code 997) in orderto reduce the number of times code must be retrieved from bulk storagewhile instructions of the computer code 997 are executed. Moreover,similar to processor 991, memory devices 994, 995 may reside at a singlephysical location, including one or more types of data storage, or bedistributed across a plurality of physical systems in various forms.Further, memory devices 994, 995 can include data distributed across,for example, a local area network (LAN) or a wide area network (WAN).Further, memory devices 994, 995 may include an operating system (notshown) and may include other systems not shown in the figures.

In some embodiments, the computer system 900 may further be coupled toan Input/output (I/O) interface and a computer data storage unit (forexample a data store, data mart or repository). An I/O interface mayinclude any system for exchanging information to or from an input device992 or output device 993. The input device 992 may be, inter alia, akeyboard, a mouse, sensors, biometric input device, camera, timer, etc.The output device 993 may be, inter alia, a printer, a plotter, adisplay device (such as a computer screen or monitor), a magnetic tape,a removable hard disk, a floppy disk, etc. The memory devices 994 and995 may be, inter alia, a hard disk, a floppy disk, a magnetic tape, anoptical storage such as a compact disc (CD) or a digital video disc(DVD), a dynamic random access memory (DRAM), a read-only memory (ROM),etc. The bus may provide a communication link between each of thecomponents in computer 900, and may include any type of transmissionlink, including electrical, optical, wireless, etc.

An I/O interface may allow computer system 900 to store information(e.g., data or program instructions such as program code 997) on andretrieve the information from a computer data storage unit (not shown).Computer data storage unit includes a known computer-readable storagemedium, which is described below. In one embodiment, computer datastorage unit may be a non-volatile data storage device, such as amagnetic disk drive (i.e., hard disk drive) or an optical disc drive(e.g., a CD-ROM drive which receives a CD-ROM disk).

As will be appreciated by one skilled in the art, in a first embodiment,the present invention may be a method; in a second embodiment, thepresent invention may be a system; and in a third embodiment, thepresent invention may be a computer program product. Any of thecomponents of the embodiments of the present invention can be deployed,managed, serviced, etc. by a service provider that modifies campaigndependent geofences, to deploy or integrate computing infrastructurewith respect to accessing content of a shared account. Thus, anembodiment of the present invention discloses a process for supportingcomputer infrastructure, where the process includes providing at leastone support service for at least one of integrating, hosting,maintaining and deploying computer-readable code (e.g., program code997) in a computer system (e.g., computer 900) including one or moreprocessor(s) 991, wherein the processor(s) carry out instructionscontained in the computer code 997 causing the computer system to modifycampaign dependent geofences. Another embodiment discloses a process forsupporting computer infrastructure, where the process includesintegrating computer-readable program code into a computer systemincluding a processor.

The step of integrating includes storing the program code in acomputer-readable storage device of the computer system through use ofthe processor. The program code, upon being executed by the processor,implements a method of accessing content of a shared account. Thus thepresent invention discloses a process for supporting, deploying and/orintegrating computer infrastructure, integrating, hosting, maintaining,and deploying computer-readable code into the computer system 900,wherein the code in combination with the computer system 900 is capableof performing a method of modifying campaign dependent geofences.

A computer program product of the present invention comprises one ormore computer readable hardware storage devices having computer readableprogram code stored therein, said program code containing instructionsexecutable by one or more processors of a computer system to implementthe methods of the present invention.

A computer program product of the present invention comprises one ormore computer readable hardware storage devices having computer readableprogram code stored therein, said program code containing instructionsexecutable by one or more processors of a computer system to implementthe methods of the present invention.

A computer system of the present invention comprises one or moreprocessors, one or more memories, and one or more computer readablehardware storage devices, said one or more hardware storage devicescontaining program code executable by the one or more processors via theone or more memories to implement the methods of the present invention.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method comprising: creating, by a processor ofa specialized computer system comprising a specialized configuration ofhardware, a marketing campaign comprising one or more campaign messagescomprising virtualized hardware physically located via a networkconnected to said specialized computer system, wherein said specializedcomputer system includes a geofence module including specializedcircuitry and chipsets physically connected within said geofence module,and wherein said specialized circuitry executes computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry inorder to perform the method; receiving, by said processor viavirtualized hardware of a network, an application programming interface(API) call; storing, by said processor, said API call within a memorydevice; generating by said processor, a geofence based on said API call;storing, by said processor, said geofence within said memory device;mapping, by the processor executing a mapping module of said geofencemodule, the geofence having a specified virtual boundary includingspecified limits including a longitude, latitude, and radius with alocation and size, and parameters corresponding to the marketingcampaign including a start date, an end date and the one or morecampaign messages; tracking, by the processor via sensors, a computerdevice entering, exiting or dwelling within the specified virtualboundary of the geofence; determining, by the processor enabling atransceiver of said computing system, a location of the tracked computerdevice broadcasting location data from a location module comprisingpositioning capabilities selected from the group consisting of a globalpositioning system (GPS), Wi-Fi, Bluetooth and Bluetooth low energy;monitoring, by the processor, a position of the tracked computer devicein real time as the tracked computer device changes location;transmitting, by the processor, the one or more campaign messages to thetracked computer device entering, exiting or dwelling within thespecified virtual boundary of the geofence as a function of the locationof the tracked computer device being monitored between the start dateand the end date of the marketing campaign; automatically deactivating,by the processor executing a module including portions of saidspecialized circuitry and chipsets, the geofence as a function of theend date of the marketing campaign thereby disabling a virtual boundaryduring off hours of a structure associated with said marketing campaign;further transmitting, by the processor, a secondary message that isdifferent from the one or more campaign messages, to the trackedcomputer device entering, exiting or dwelling within the specifiedboundary of the geofence during a deactivated time period between theend date and a deletion date for a geofence, wherein the deletion dateis a pre-set time after the end date of the marketing campaign;automatically reactivating, by the processor executing said moduleincluding portions of said specialized circuitry and chipsets, thegeofence as a function of an end time of said off hours thereby enablingsaid virtual boundary; enabling, by said processor in response to saidsecondary message and said automatically reactivating, a user of saidtracked computer device such that said user initiates motion and entersthe specified virtual boundary of the geofence traveling towardspromotions of said marketing campaign causing said user to execute apurchase associated with said promotions; and automatically deleting, bythe processor, the geofence as a function of the deletion date, therebyimproving a geofence specialized hardware system comprising the trackedcomputer device equipped with an operating system by limiting a numberof simultaneously active geofences thereby improving a functionality ofsaid operating system by preventing geo-fencing device limitationsassociated with removing interference associated with retrieving ormapping currently relevant geofences that may otherwise be unavailableor un-viewable.
 2. The method of claim 1, further comprising the step ofautomatically activating, by the processor, the geofence, as a functionof the start date of the marketing campaign.
 3. The method of claim 1,wherein the geofence is mapped to the location of a live event occurringin real time and the start date and end date correspond to a start timeand an end time of the live event.
 4. The method of claim 1, furthercomprising the step of: reporting, by the processor, a schedulecomprising one or more pending geofences, wherein each of the pendinggeofences are scheduled for activation upon commencement of an upcomingmarketing campaign start date; and displaying, by the processor, theschedule to a user of the computer system.
 5. The method of claim 1,further comprising the step of: creating, by the processor, the geofencehaving the specified boundary and parameters corresponding to themarketing campaign automatically on the start date of the marketingcampaign.
 6. The method of claim 1, further comprising the step of:selecting, by the processor, a deletion date for deleting the geofence,wherein the deletion date occurs after the end date of the marketingcampaign.
 7. The method of claim 1, further comprising the steps of:loading, by the tracked computer device, the geofence into a memorydevice; mapping, by the tracked computer device, the location of thegeofence; comparing, by the tracked computer device, the location dataof the tracked computer device and the location of the geofence; anddisplaying, by the tracked computer device, a push notification as afunction of the location data of the tracked computer device entering,exiting or dwelling within the geofence during a time frame between thestart date and end date of the marketing campaign.
 8. A specializedcomputer system comprising a specialized configuration of hardware,comprising; a central processing unit (CPU); a memory device coupled tothe CPU; and a computer readable storage device coupled to theprocessor, wherein the storage device contains program code executableby the CPU via the memory device to implement a method comprising:creating, by the CPU, a marketing campaign comprising one or morecampaign messages comprising virtualized hardware physically located viaa network connected to said specialized computer system, wherein saidspecialized computer system includes a geofence module includingspecialized circuitry and chipsets physically connected within saidgeofence module, and wherein said specialized circuitry executescomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry in order to perform a campaign dependent geofence modificationmethod; receiving, by said CPU via virtualized hardware of a network, anapplication programming interface (API) call; storing, by said CPU, saidAPI call within a memory device; generating by said CPU, a geofencebased on said API call; storing, by said CPU, said geofence within saidmemory device; mapping, by the CPU executing a mapping module of saidgeofence module, the geofence having a specified virtual boundaryincluding specified limits including a longitude, latitude, and radiuswith a location and size, and parameters corresponding to the marketingcampaign including a start date, an end date and the one or morecampaign messages; tracking, by the CPU via sensors, a computer deviceentering, exiting or dwelling within the specified virtual boundary ofthe geofence; determining, by the CPU enabling a transceiver of saidcomputing system, a location of the tracked computer device broadcastinglocation data from a location module comprising positioning capabilitiesselected from the group consisting of a global positioning system (GPS),Wi-Fi, Bluetooth and Bluetooth low energy; monitoring, by the CPU, aposition of the tracked computer device in real time as the trackedcomputer device changes location; transmitting, by the CPU, the one ormore campaign messages to the tracked computer device entering, exitingor dwelling within the specified virtual boundary of the geofence as afunction of the location of the tracked computer device being monitoredbetween the start date and the end date of the marketing campaign;automatically deactivating, by the CPU executing a module includingportions of said specialized circuitry and chipsets, the geofence as afunction of the end date of the marketing campaign thereby disabling avirtual boundary during off hours of a structure associated with saidmarketing campaign; further transmitting, by the CPU, a secondarymessage that is different from the one or more campaign messages, to thetracked computer device entering, exiting or dwelling within thespecified boundary of the geofence during a deactivated time periodbetween the end date and a deletion date for a geofence, wherein thedeletion date is a pre-set time after the end date of the marketingcampaign; automatically reactivating, by the CPU executing said moduleincluding portions of said specialized circuitry and chipsets, thegeofence as a function of an end time of said off hours thereby enablingsaid virtual boundary; enabling, by said CPU in response to saidsecondary message and said automatically reactivating, a user of saidtracked computer device such that said user initiates motion and entersthe specified virtual boundary of the geofence traveling towardspromotions of said marketing campaign causing said user to execute apurchase associated with said promotions; and automatically deleting, bythe CPU, the geofence as a function of the deletion date, therebyimproving a geofence specialized hardware system comprising the trackedcomputer device equipped with an operating system by limiting a numberof simultaneously active geofences thereby improving a functionality ofsaid operating system by preventing geo-fencing device limitationsassociated with removing interference associated with retrieving ormapping currently relevant geofences that may otherwise be unavailableor un-viewable.
 9. The system of claim 8, further comprisingautomatically activating, by the CPU, the geofence, as a function of thestart date of the marketing campaign.
 10. The system of claim 8, whereinthe geofence is mapped to the location of a live event occurring in realtime and the start date and end date of the marketing campaigncorrespond to a start time and an end time of the live event.
 11. Thesystem of claim 8, further comprising the step of: reporting, by theCPU, a schedule comprising one or more pending geofences, wherein eachof the pending geofences are scheduled for activation upon commencementof an upcoming marketing campaign start date; and displaying, by theCPU, the schedule to a user of the computer system.
 12. The system ofclaim 8, further comprising the step of: selecting, by the CPU, adeletion date for deleting the geofence, wherein the deletion dateoccurs after the end date of the marketing campaign.
 13. The system ofclaim 8, further comprising the steps of: loading, by the trackedcomputer device, the geofence into a memory device; mapping, by thetracked computer device, the location of the geofence; comparing, by thetracked computer device, the location data of the tracked computerdevice and the location of the geofence; and displaying, by the trackedcomputer device, a push notification as a function of the location dataof the tracked computer device entering, exiting or dwelling within thegeofence during a time frame between the start date and end date of themarketing campaign.
 14. A computer program product comprising: one ormore computer readable hardware storage devices having computer readableprogram code stored therein, said program code containing instructionsexecutable by one or more central processing units (CPU) of aspecialized computer system comprising a specialized configuration ofhardware to implement a method comprising: creating, by the CPU, amarketing campaign comprising one or more campaign messages comprisingvirtualized hardware physically located via a network connected to saidspecialized computer system, wherein said specialized computer systemincludes a geofence module including specialized circuitry and chipsetsphysically connected within said geofence module, and wherein saidspecialized circuitry executes computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry in order to performthe campaign dependent geofence modification method; receiving, by saidCPU via virtualized hardware of a network, an application programminginterface (API) call; storing, by said CPU, said API call within amemory device; generating by said CPU, a geofence based on said APIcall; storing, by said CPU, said geofence within said memory device;mapping, by the CPU executing a mapping module of said geofence module,the geofence having a specified virtual boundary including specifiedlimits including a longitude, latitude, and radius with a location andsize, and parameters corresponding to the marketing campaign including astart date, an end date and the one or more campaign messages; tracking,by the CPU via sensors, a computer device entering, exiting or dwellingwithin the specified virtual boundary of the geofence; determining, bythe CPU enabling a transceiver of said computing system, a location ofthe tracked computer device broadcasting location data from a locationmodule comprising positioning capabilities selected from the groupconsisting of a global positioning system (GPS), Wi-Fi, Bluetooth andBluetooth low energy; monitoring, by the CPU, a position of the trackedcomputer device in real time as the tracked computer device changeslocation; transmitting, by the CPU, the one or more campaign messages tothe tracked computer device entering, exiting or dwelling within thespecified virtual boundary of the geofence as a function of the locationof the tracked computer device being monitored between the start dateand the end date of the marketing campaign; automatically deactivating,by the CPU executing a module including portions of said specializedcircuitry and chipsets, the geofence as a function of the end date ofthe marketing campaign thereby disabling a virtual boundary during offhours of a structure associated with said marketing campaign; furthertransmitting, by the CPU, a secondary message that is different from theone or more campaign messages, to the tracked computer device entering,exiting or dwelling within the specified boundary of the geofence duringa deactivated time period between the end date and a deletion date for ageofence, wherein the deletion date is a pre-set time after the end dateof the marketing campaign; automatically reactivating, by the CPUexecuting said module including portions of said specialized circuitryand chipsets, the geofence as a function of an end time of said offhours thereby enabling said virtual boundary; enabling, by said CPU inresponse to said secondary message and said automatically reactivating,a user of said tracked computer device such that said user initiatesmotion and enters the specified virtual boundary of the geofencetraveling towards promotions of said marketing campaign causing saiduser to execute a purchase associated with said promotions; andautomatically deleting, by the CPU, the geofence as a function of thedeletion date, thereby improving a geofence specialized hardware systemcomprising the tracked computer device equipped with an operating systemby limiting a number of simultaneously active geofences therebyimproving a functionality of said operating system by preventinggeo-fencing device limitations associated with removing interferenceassociated with retrieving or mapping currently relevant geofences thatmay otherwise be unavailable or un-viewable.
 15. The computer programproduct of claim 14, further comprising automatically activating, by theCPU, the geofence, as a function of the start date of the marketingcampaign.
 16. The computer program product of claim 14, wherein thegeofence is mapped to the location of a live event occurring in realtime and the start date and end date of the marketing campaign mirror astart time and an end time of the live event.
 17. The computer programproduct of claim 14, further comprising the steps of selecting, by theCPU, a deletion date for deleting the geofence, wherein the deletiondate occurs after the end date of the marketing campaign.
 18. Thecomputer program product of claim 14 further comprising: reporting, bythe CPU, a schedule comprising one or more pending geofences, whereineach of the pending geofences are scheduled for activation uponcommencement of an upcoming marketing campaign start date; anddisplaying, by the CPU, the schedule to a user of the computer system.19. The computer program product of claim 14, further comprising thesteps of: loading, by the tracked computer device, the geofence into amemory device; mapping, by the tracked computer device, the location ofthe geofence; comparing, by the tracked computer device, the locationdata, of the tracked computer device and the location of the geofence;and displaying, by the tracked computer device, a push notification as afunction of the location data of the tracked computer device entering,exiting or dwelling within the geofence during a time frame between thestart date and end date of the marketing campaign.
 20. The computerprogram product of claim of claim 14, further comprising the steps of:creating, by the processor, the geofence having the specified boundaryand parameters corresponding to the marketing campaign automatically onthe start date of the marketing campaign.